from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能


class 主动技能(主动技能):
    技能施放时间 = 0.0
    脱手 = 1
    data0 = []
    data1 = []
    data2 = []
    data3 = []

    类型 = '物理'
    武器惩罚类型 = '物理百分比'
    计算CD = 0

    def 武器CD系数(self, 武器类型, 输出类型):
        输出类型 = self.武器惩罚类型
        return super().武器CD系数(武器类型, 输出类型)

    def 手搓CD(self):
        cdr = 0
        if self.手搓:
            if self.所在等级 >= 15 and self.所在等级 <= 30:
                cdr = 0.01 * self.手搓收益
            if self.所在等级 >= 35 and self.所在等级 <= 70:
                cdr = 0.02 * self.手搓收益
            if self.所在等级 >= 75 and self.所在等级 <= 100:
                cdr = 0.05 * self.手搓收益
            if self.所在等级 in [85, 100]:
                cdr = 0.05 * self.手搓收益
        return cdr


class 技能0(被动技能):
    名称 = '基础精通'
    倍率 = 1.0
    所在等级 = 1
    等级上限 = 200
    学习间隔 = 1
    等级精通 = 110
    关联技能 = ['挑击']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(self.倍率 * (0.463 + 0.089 * self.等级), 5)


class 技能1(主动技能):
    名称 = '挑击'
    类型 = '物理'
    所在等级 = 1
    等级上限 = 20
    学习间隔 = 3
    等级精通 = 10
    MP = [0, 0]
    # 物理攻击力：<data0>%
    data0 = [0, 124, 139, 151, 166, 179, 193, 208, 221, 235, 249, 263, 276, 290, 303, 317, 331, 346, 359, 373, 387]
    hit0 = 1
    CD = 2.0
    TP成长 = 0.10
    TP上限 = 7


class 技能2(主动技能):

    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'

    名称 = "暗影斩"
    所在等级 = 1
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 3
    MP = [17, 140]
    无色消耗 = 0
    data0 = [0, 798, 879, 960, 1041, 1119, 1204, 1285, 1365, 1445, 1528, 1607, 1690, 1770, 1850, 1932, 2013, 2093, 2175, 2257, 2336, 2417, 2500, 2579, 2660, 2742, 2825, 2904, 2984, 3066, 3148, 3229, 3308, 3391, 3470, 3553, 3633, 3714, 3795, 3875, 3959, 4040, 4119, 4199, 4282, 4362, 4443, 4523, 4606, 4687, 4768, 4848, 4929, 5009, 5090, 5174, 5253, 5333, 5416, 5498, 5576, 5659, 5736, 5820, 5901, 5981, 6062, 6143, 6226, 6308, 6386]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能3(主动技能):
    类型 = '物理'

    名称 = "滑斩"
    所在等级 = 1
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 3
    MP = [2, 100]
    无色消耗 = 0
    data0 = [0, 1035, 1139, 1243, 1349, 1455, 1558, 1664, 1769, 1873, 1980, 2084, 2188, 2295, 2400, 2503, 2609, 2714, 2818, 2925, 3029, 3133, 3240, 3345, 3448, 3554, 3660, 3763, 3870, 3974, 4078, 4185, 4290, 4393, 4499, 4605, 4708, 4815, 4919, 5024, 5130, 5235, 5338, 5446, 5550, 5653, 5760, 5864, 5969, 6075, 6180, 6283, 6391, 6495, 6600, 6705, 6810, 6917, 7020, 7125, 7232, 7336, 7440, 7545, 7650, 7755, 7862, 7965, 8070, 8177, 8281]
    hit0 = 1


class 技能4(主动技能):
    类型 = '物理'

    名称 = "跃斩"
    所在等级 = 1
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 3
    MP = [2, 425]
    无色消耗 = 0
    data0 = [0, 773, 851, 930, 1009, 1087, 1164, 1243, 1321, 1398, 1478, 1558, 1637, 1716, 1793, 1871, 1951, 2028, 2108, 2187, 2265, 2342, 2422, 2500, 2577, 2655, 2735, 2813, 2891, 2972, 3050, 3128, 3206, 3285, 3364, 3443, 3520, 3598, 3677, 3754, 3833, 3912, 3992, 4069, 4148, 4226, 4304, 4384, 4464, 4542, 4620, 4698, 4777, 4856, 4933, 5011, 5088, 5168, 5247, 5325, 5403, 5481, 5559, 5637, 5720, 5797, 5876, 5954, 6031, 6110, 6188]
    hit0 = 1
    data1 = [0, 520, 575, 630, 686, 740, 796, 851, 906, 961, 1016, 1071, 1127, 1181, 1237, 1292, 1348, 1402, 1457, 1514, 1568, 1622, 1679, 1733, 1788, 1845, 1898, 1953, 2010, 2065, 2119, 2176, 2230, 2284, 2340, 2396, 2450, 2506, 2561, 2618, 2671, 2727, 2784, 2837, 2892, 2948, 3002, 3058, 3114, 3168, 3222, 3278, 3333, 3388, 3443, 3499, 3555, 3610, 3666, 3720, 3776, 3830, 3886, 3941, 3996, 4051, 4107, 4161, 4217, 4271, 4327]
    hit1 = 0
    TP成长 = 0.1
    TP上限 = 7

    def 等效百分比(self, **argv):
        武器类型 = argv.get('武器类型', '')
        if 武器类型 == '钝器':
            self.hit1 = 1
        else:
            self.hit1 = 0
        return super().等效百分比(**argv)


class 技能5(主动技能):
    类型 = '物理'

    名称 = "黑暗十字斩"
    所在等级 = 5
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 3
    MP = [2, 170]
    无色消耗 = 0
    data0 = [0, 173, 191, 208, 226, 244, 262, 279, 297, 314, 332, 350, 368, 385, 403, 421, 439, 455, 473, 492, 510, 525, 543, 563, 579, 596, 614, 633, 650, 667, 685, 702, 721, 738, 755, 773, 792, 809, 826, 844, 861, 879, 897, 915, 932, 950, 968, 986, 1001, 1019, 1038, 1056, 1072, 1090, 1109, 1126, 1143, 1161, 1179, 1197, 1214, 1232, 1249, 1268, 1285, 1303, 1320, 1338, 1356, 1373, 1391]
    hit0 = 2
    data1 = [0, 763, 842, 918, 996, 1073, 1151, 1230, 1306, 1385, 1461, 1539, 1616, 1693, 1770, 1848, 1926, 2004, 2080, 2158, 2235, 2313, 2390, 2469, 2546, 2624, 2701, 2779, 2856, 2933, 3011, 3089, 3167, 3243, 3322, 3399, 3476, 3553, 3632, 3709, 3787, 3864, 3942, 4019, 4096, 4175, 4251, 4330, 4408, 4485, 4562, 4640, 4717, 4795, 4871, 4951, 5028, 5105, 5182, 5261, 5337, 5414, 5490, 5570, 5648, 5724, 5803, 5879, 5957, 6033, 6112]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能6(主动技能):
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'

    名称 = "暗影·波动剑"
    所在等级 = 5
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 3
    MP = [2, 110]
    无色消耗 = 0
    data0 = [0, 869, 955, 1044, 1132, 1221, 1307, 1396, 1484, 1573, 1659, 1749, 1836, 1926, 2012, 2102, 2188, 2277, 2364, 2454, 2544, 2629, 2719, 2806, 2896, 2981, 3071, 3158, 3247, 3333, 3423, 3511, 3599, 3687, 3776, 3863, 3951, 4039, 4128, 4214, 4304, 4391, 4481, 4569, 4656, 4745, 4833, 4921, 5009, 5099, 5184, 5274, 5361, 5451, 5536, 5626, 5713, 5803, 5888, 5978, 6066, 6155, 6242, 6330, 6418, 6506, 6594, 6683, 6773, 6859, 6948]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能7(主动技能):
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'

    名称 = "旋涡斩"
    所在等级 = 10
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 8
    MP = [5, 200]
    无色消耗 = 0
    data0 = [0, 335, 369, 401, 437, 470, 505, 538, 573, 607, 639, 675, 708, 743, 776, 811, 844, 880, 912, 947, 981, 1013, 1049, 1082, 1118, 1150, 1184, 1219, 1253, 1285, 1321, 1354, 1388, 1422, 1456, 1491, 1523, 1559, 1592, 1627, 1660, 1695, 1729, 1761, 1796, 1830, 1865, 1897, 1933, 1966, 2002, 2034, 2068, 2103, 2137, 2171, 2204, 2238, 2272, 2306, 2340, 2375, 2407, 2443, 2476, 2511, 2544, 2578, 2613, 2645, 2680]
    hit0 = 1
    data1 = [0, 515, 567, 619, 672, 725, 776, 830, 882, 933, 985, 1037, 1090, 1143, 1195, 1247, 1300, 1352, 1403, 1456, 1510, 1561, 1614, 1666, 1718, 1770, 1823, 1874, 1928, 1980, 2032, 2084, 2137, 2188, 2241, 2293, 2345, 2399, 2450, 2502, 2554, 2607, 2659, 2712, 2763, 2817, 2869, 2920, 2972, 3026, 3078, 3130, 3183, 3235, 3287, 3339, 3390, 3443, 3497, 3548, 3601, 3653, 3705, 3757, 3810, 3862, 3915, 3968, 4019, 4071, 4124]
    hit1 = 3
    data2 = [0, 575, 633, 692, 749, 810, 866, 925, 983, 1041, 1101, 1159, 1218, 1275, 1333, 1393, 1450, 1510, 1567, 1626, 1685, 1743, 1800, 1860, 1918, 1977, 2034, 2093, 2152, 2211, 2268, 2326, 2385, 2444, 2502, 2560, 2619, 2678, 2736, 2794, 2851, 2911, 2969, 3027, 3086, 3144, 3204, 3261, 3319, 3378, 3435, 3496, 3553, 3612, 3670, 3729, 3786, 3845, 3903, 3962, 4021, 4079, 4137, 4196, 4255, 4313, 4370, 4429, 4487, 4546, 4605]
    hit2 = 1
    TP成长 = 0
    TP上限 = 7

    # TP影响第二段攻击次数
    def 等效百分比(self, **argv):
        self.hit1 = 3 + self.TP等级
        return super().等效百分比(**argv)


class 技能8(主动技能):
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'

    名称 = "暗月斩"
    所在等级 = 5
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 4
    MP = [3, 120]
    无色消耗 = 0
    data0 = [0, 546, 600, 658, 714, 766, 821, 878, 936, 988, 1044, 1099, 1157, 1208, 1266, 1320, 1374, 1434, 1486, 1542, 1598, 1655, 1709, 1764, 1818, 1873, 1931, 1987, 2044, 2097, 2151, 2207, 2265, 2316, 2375, 2429, 2481, 2537, 2595, 2652, 2707, 2759, 2816, 2871, 2925, 2981, 3036, 3092, 3148, 3205, 3259, 3317, 3369, 3428, 3480, 3538, 3594, 3646, 3701, 3759, 3812, 3867, 3922, 3976, 4031, 4086, 4141, 4196, 4250, 4305, 4360]
    hit0 = 1
    data1 = [0, 591, 650, 710, 772, 831, 891, 950, 1013, 1071, 1132, 1194, 1250, 1310, 1369, 1430, 1493, 1551, 1610, 1672, 1731, 1791, 1848, 1910, 1969, 2032, 2094, 2151, 2211, 2270, 2332, 2391, 2449, 2512, 2568, 2631, 2692, 2748, 2810, 2871, 2930, 2993, 3049, 3111, 3170, 3232, 3292, 3351, 3408, 3471, 3529, 3590, 3652, 3711, 3773, 3835, 3893, 3951, 4012, 4073, 4132, 4192, 4252, 4312, 4372, 4433, 4493, 4553, 4613, 4673, 4733]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能9(主动技能):
    类型 = '物理'

    名称 = "跃地斩"
    所在等级 = 10
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 4
    MP = [4, 100]
    无色消耗 = 0
    data0 = [0, 440, 485, 527, 572, 617, 662, 707, 751, 795, 840, 885, 929, 973, 1018, 1064, 1109, 1153, 1197, 1242, 1287, 1332, 1376, 1419, 1464, 1509, 1554, 1599, 1643, 1687, 1732, 1776, 1821, 1865, 1910, 1955, 2001, 2045, 2089, 2134, 2178, 2223, 2268, 2311, 2356, 2401, 2446, 2491, 2535, 2578, 2623, 2668, 2713, 2757, 2802, 2847, 2893, 2937, 2982, 3025, 3070, 3115, 3160, 3204, 3248, 3293, 3338, 3383, 3427, 3470, 3515]
    hit0 = 4
    TP成长 = 0.1
    TP上限 = 7


class 技能10(主动技能):
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'

    名称 = "冥光斩"
    所在等级 = 10
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 10
    MP = [15, 440]
    无色消耗 = 0
    data0 = [0, 592, 653, 712, 772, 833, 893, 953, 1013, 1073, 1133, 1193, 1253, 1313, 1373, 1435, 1494, 1555, 1613, 1674, 1735, 1796, 1855, 1914, 1974, 2034, 2096, 2155, 2216, 2275, 2336, 2397, 2456, 2516, 2575, 2637, 2697, 2756, 2817, 2876, 2937, 2998, 3057, 3118, 3179, 3239, 3299, 3357, 3418, 3479, 3539, 3599, 3659, 3718, 3779, 3839, 3900, 3959, 4020, 4080, 4139, 4200, 4259, 4320, 4380, 4441, 4500, 4561, 4620, 4681, 4741]
    hit0 = 2
    TP成长 = 0.1
    TP上限 = 7


class 技能11(主动技能):
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'

    名称 = "暗影三击剑"
    所在等级 = 10
    等级上限 = 70
    学习间隔 = 3
    等级精通 = 60
    CD = 8
    MP = [10, 600]
    无色消耗 = 0
    data0 = [0, 664, 771, 877, 983, 1090, 1195, 1302, 1407, 1515, 1619, 1726, 1831, 1938, 2044, 2151, 2257, 2362, 2470, 2574, 2681, 2787, 2893, 2998, 3106, 3213, 3317, 3425, 3529, 3636, 3742, 3849, 3953, 4061, 4166, 4272, 4380, 4485, 4591, 4697, 4804, 4908, 5016, 5121, 5228, 5333, 5440, 5547, 5652, 5759, 5864, 5971, 6076, 6183, 6287, 6395, 6500, 6606, 6714, 6819, 6926, 7031, 7138, 7242, 7350, 7455, 7562, 7667, 7774, 7880, 7986]
    hit0 = 1
    data1 = [0, 664, 771, 877, 983, 1090, 1195, 1302, 1407, 1515, 1619, 1726, 1831, 1938, 2044, 2151, 2257, 2362, 2470, 2574, 2681, 2787, 2893, 2998, 3106, 3213, 3317, 3425, 3529, 3636, 3742, 3849, 3953, 4061, 4166, 4272, 4380, 4485, 4591, 4697, 4804, 4908, 5016, 5121, 5228, 5333, 5440, 5547, 5652, 5759, 5864, 5971, 6076, 6183, 6287, 6395, 6500, 6606, 6714, 6819, 6926, 7031, 7138, 7242, 7350, 7455, 7562, 7667, 7774, 7880, 7986]
    hit1 = 1
    data2 = [0, 1330, 1542, 1755, 1967, 2180, 2392, 2604, 2817, 3029, 3240, 3453, 3664, 3876, 4089, 4301, 4514, 4726, 4937, 5151, 5363, 5574, 5787, 5999, 6211, 6424, 6636, 6848, 7060, 7272, 7485, 7697, 7910, 8121, 8333, 8546, 8758, 8971, 9183, 9394, 9607, 9818, 10031, 10244, 10455, 10667, 10880, 11092, 11305, 11517, 11728, 11941, 12153, 12365, 12578, 12790, 13002, 13214, 13427, 13639, 13851, 14063, 14275, 14487, 14701, 14912, 15124, 15336, 15549, 15761, 15973]
    hit2 = 1


class 技能12(主动技能):
    类型 = '物理'

    名称 = "突刺"
    所在等级 = 10
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 3
    MP = [10, 300]
    无色消耗 = 0
    data0 = [0, 222, 245, 268, 290, 313, 336, 358, 380, 403, 426, 449, 471, 494, 518, 540, 563, 585, 609, 630, 653, 675, 699, 721, 743, 766, 789, 811, 834, 857, 879, 901, 924, 947, 970, 992, 1015, 1038, 1061, 1083, 1106, 1130, 1151, 1173, 1196, 1220, 1242, 1265, 1286, 1310, 1332, 1355, 1377, 1400, 1422, 1445, 1467, 1491, 1513, 1536, 1558, 1582, 1604, 1627, 1648, 1672, 1694, 1717, 1739, 1763, 1785]
    hit0 = 3
    data1 = [0, 155, 172, 188, 203, 219, 235, 251, 266, 282, 298, 314, 330, 346, 363, 378, 394, 410, 426, 441, 457, 473, 489, 505, 520, 536, 552, 568, 584, 600, 615, 631, 647, 663, 679, 694, 711, 727, 743, 758, 774, 791, 806, 821, 837, 854, 869, 886, 900, 917, 932, 949, 964, 980, 995, 1012, 1027, 1044, 1059, 1075, 1091, 1107, 1123, 1139, 1154, 1170, 1186, 1202, 1217, 1234, 1250]
    hit1 = 0

    TP上限 = 3
    TP成长 = -0.05

    # 太/光加成
    def 等效百分比(self, **argv):
        武器类型 = argv.get('武器类型', '')
        if 武器类型 == '光剑' or '太刀':
            self.hit0 = 0
            self.hit1 = 5
            self.hit1 = self.hit1 + self.TP等级
        else:
            self.hit0 = 3
            self.hit1 = 0
            self.hit0 = self.hit0 + self.TP等级
        return super().等效百分比(**argv)


class 技能13(主动技能):
    类型 = '物理'

    名称 = "暗劲爆发"
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 16
    MP = [10, 450]
    无色消耗 = 1
    data0 = [0, 478, 526, 575, 623, 672, 720, 768, 817, 865, 915, 963, 1012, 1060, 1109, 1157, 1206, 1254, 1302, 1351, 1399, 1448, 1496, 1545, 1593, 1642, 1690, 1738, 1787, 1835, 1885, 1933, 1982, 2030, 2079, 2127, 2176, 2224, 2272, 2321, 2370, 2419, 2466, 2515, 2563, 2612, 2660, 2708, 2757, 2805, 2854, 2903, 2952, 3000, 3049, 3097, 3146, 3194, 3242, 3291, 3339, 3389, 3437, 3486, 3533, 3582, 3630, 3678, 3727, 3775, 3824]
    hit0 = 1
    data1 = [0, 527, 580, 633, 687, 741, 794, 848, 901, 953, 1009, 1062, 1115, 1169, 1222, 1276, 1330, 1383, 1436, 1489, 1544, 1596, 1649, 1703, 1756, 1810, 1865, 1918, 1971, 2025, 2079, 2132, 2185, 2238, 2291, 2345, 2399, 2452, 2505, 2559, 2613, 2667, 2721, 2773, 2826, 2881, 2934, 2987, 3041, 3094, 3148, 3201, 3255, 3307, 3360, 3415, 3468, 3522, 3576, 3630, 3683, 3737, 3790, 3842, 3898, 3950, 4003, 4056, 4110, 4164, 4217]
    hit1 = 8
    TP成长 = 0.1
    TP上限 = 7

    def 等效百分比(self, **argv):
        if self.TP等级 > 0:
            self.power1 = 1.2
        return super().等效百分比(**argv)


class 技能14(被动技能):
    名称 = '暗·短剑精通'
    所在等级 = 15
    等级上限 = 40
    学习间隔 = 3
    等级精通 = 30
    关联技能 = ['所有']
    data0 = [0, 3.9, 5.4, 6.9, 8.4, 9.9, 11.4, 12.9, 14.4, 15.9, 17.4, 18.9, 20.4, 21.9, 23.4, 24.9, 26.4, 27.9, 29.4, 30.9, 32.4, 33.9, 35.4, 36.9, 38.4, 39.9, 41.4, 42.9, 44.4, 45.9, 47.4, 48.9, 50.4, 51.9, 53.4, 54.9, 56.4, 57.9, 59.4, 60.9, 62.4]
    data1 = [0, 3.9, 5.4, 6.9, 8.4, 9.9, 11.4, 12.9, 14.4, 15.9, 17.4, 18.9, 20.4, 21.9, 23.4, 24.9, 26.4, 27.9, 29.4, 30.9, 32.4, 33.9, 35.4, 36.9, 38.4, 39.9, 41.4, 42.9, 44.4, 45.9, 47.4, 48.9, 50.4, 51.9, 53.4, 54.9, 56.4, 57.9, 59.4, 60.9, 62.4]

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '短剑':
            return 1.0
        else:
            return round(1 + self.data0[self.等级]/100, 5)
            # return round(1.00 + self.等级 * 0.015, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '短剑':
            return 1.0
        else:
            return round(1 + self.data1[self.等级]/100, 5)


class 技能15(被动技能):
    名称 = '暗·太刀精通'
    所在等级 = 15
    等级上限 = 40
    学习间隔 = 3
    等级精通 = 30
    关联技能 = ['所有']
    data0 = [0, 1, 2.5, 4, 5.5, 7, 8.5, 10, 11.5, 13, 14.5, 16, 17.5, 19, 20.5, 22, 23.5, 25, 26.5, 28, 29.5, 31, 32.5, 34, 35.5, 37, 38.5, 40, 41.5, 43, 44.5, 46, 47.5, 49, 50.5, 52, 53.5, 55, 56.5, 58, 59.5]
    data1 = [0, 1, 2.5, 4, 5.5, 7, 8.5, 10, 11.5, 13, 14.5, 16, 17.5, 19, 20.5, 22, 23.5, 25, 26.5, 28, 29.5, 31, 32.5, 34, 35.5, 37, 38.5, 40, 41.5, 43, 44.5, 46, 47.5, 49, 50.5, 52, 53.5, 55, 56.5, 58, 59.5]

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '太刀':
            return 1.0
        else:
            return round(1 + self.data0[self.等级] / 100, 5)
            # return round(1.00 + self.等级 * 0.013, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '太刀':
            return 1.0
        else:
            return round(1 + self.data1[self.等级] / 100, 5)


class 技能16(被动技能):
    名称 = '暗·巨剑精通'
    所在等级 = 15
    等级上限 = 40
    学习间隔 = 3
    等级精通 = 30
    关联技能 = ['所有']
    data0 = [0, 1, 2.5, 4, 5.5, 7, 8.5, 10, 11.5, 13, 14.5, 16, 17.5, 19, 20.5, 22, 23.5, 25, 26.5, 28, 29.5, 31, 32.5, 34, 35.5, 37, 38.5, 40, 41.5, 43, 44.5, 46, 47.5, 49, 50.5, 52, 53.5, 55, 56.5, 58, 59.5]
    data1 = [0, 1, 2.5, 4, 5.5, 7, 8.5, 10, 11.5, 13, 14.5, 16, 17.5, 19, 20.5, 22, 23.5, 25, 26.5, 28, 29.5, 31, 32.5, 34, 35.5, 37, 38.5, 40, 41.5, 43, 44.5, 46, 47.5, 49, 50.5, 52, 53.5, 55, 56.5, 58, 59.5]

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '巨剑':
            return 1.0
        else:
            return round(1 + self.data0[self.等级] / 100, 5)
            # return round(1.00 + self.等级 * 0.012, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '巨剑':
            return 1.0
        else:
            return round(1 + self.data1[self.等级] / 100, 5)


class 技能17(被动技能):
    名称 = '暗·钝器精通'
    所在等级 = 15
    等级上限 = 40
    学习间隔 = 3
    等级精通 = 30
    关联技能 = ['所有']
    data0 = [0, 1, 2.5, 4, 5.5, 7, 8.5, 10, 11.5, 13, 14.5, 16, 17.5, 19, 20.5, 22, 23.5, 25, 26.5, 28, 29.5, 31, 32.5, 34, 35.5, 37, 38.5, 40, 41.5, 43, 44.5, 46, 47.5, 49, 50.5, 52, 53.5, 55, 56.5, 58, 59.5]
    data1 = [0, 1, 2.5, 4, 5.5, 7, 8.5, 10, 11.5, 13, 14.5, 16, 17.5, 19, 20.5, 22, 23.5, 25, 26.5, 28, 29.5, 31, 32.5, 34, 35.5, 37, 38.5, 40, 41.5, 43, 44.5, 46, 47.5, 49, 50.5, 52, 53.5, 55, 56.5, 58, 59.5]

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '钝器':
            return 1.0
        else:
            return round(1 + self.data0[self.等级] / 100, 5)
            # return round(1.00 + self.等级 * 0.012, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '钝器':
            return 1.0
        else:
            return round(1 + self.data1[self.等级] / 100, 5)


class 技能18(被动技能):
    名称 = '暗·光剑精通'
    所在等级 = 15
    等级上限 = 40
    学习间隔 = 3
    等级精通 = 30
    关联技能 = ['所有']
    data0 = [0, 6.6, 8.1, 9.6, 11.1, 12.6, 14.1, 15.6, 17.1, 18.6, 20.1, 21.6, 23.1, 24.6, 26.1, 27.6, 29.1, 30.6, 32.1, 33.6, 35.1, 36.6, 38.1, 39.6, 41.1, 42.6, 44.1, 45.6, 47.1, 48.6, 50.1, 51.6, 53.1, 54.6, 56.1, 57.6, 59.1, 60.6, 62.1, 63.6, 65.1]
    data1 = [0, 6.6, 8.1, 9.6, 11.1, 12.6, 14.1, 15.6, 17.1, 18.6, 20.1, 21.6, 23.1, 24.6, 26.1, 27.6, 29.1, 30.6, 32.1, 33.6, 35.1, 36.6, 38.1, 39.6, 41.1, 42.6, 44.1, 45.6, 47.1, 48.6, 50.1, 51.6, 53.1, 54.6, 56.1, 57.6, 59.1, 60.6, 62.1, 63.6, 65.1]

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '光剑':
            return 1.0
        else:
            return round(1 + self.data0[self.等级] / 100, 5)
            # return round(1.02 + self.等级 * 0.013, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '光剑':
            return 1.0
        else:
            return round(1 + self.data1[self.等级] / 100, 5)


class 技能19(主动技能):
    类型 = '魔法'
    武器惩罚类型 = '魔法固伤'

    名称 = "邪影·波动剑"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 7
    MP = [14, 450]
    无色消耗 = 0
    data0 = [0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
    hit0 = 1
    data1 = [0, 972, 1070, 1169, 1268, 1366, 1465, 1563, 1661, 1761, 1859, 1958, 2056, 2154, 2253, 2352, 2451, 2549, 2647, 2746, 2845, 2944, 3042, 3140, 3239, 3338, 3436, 3535, 3633, 3732, 3831, 3929, 4027, 4126, 4224, 4324, 4422, 4520, 4618, 4716, 4817, 4915, 5013, 5111, 5210, 5310, 5408, 5506, 5604, 5703, 5802, 5901, 5999, 6097, 6196, 6295, 6393, 6492, 6590, 6689, 6788, 6886, 6984, 7084, 7182, 7281, 7379, 7477, 7576, 7675, 7774]
    hit1 = 3
    data2 = [0, 194, 214, 234, 253, 273, 293, 313, 333, 352, 372, 392, 413, 432, 450, 471, 491, 511, 531, 551, 570, 590, 610, 630, 649, 669, 688, 708, 728, 747, 767, 788, 808, 827, 846, 866, 886, 906, 927, 944, 964, 985, 1006, 1026, 1046, 1064, 1084, 1104, 1124, 1144, 1163, 1183, 1202, 1222, 1243, 1262, 1282, 1302, 1321, 1341, 1360, 1380, 1400, 1421, 1441, 1458, 1480, 1500, 1520, 1540, 1559]
    hit2 = 4


class 技能20(主动技能):
    类型 = '物理'
    武器惩罚类型 = '物理百分比'

    名称 = "暗魂之手"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 6
    MP = [7, 145]
    无色消耗 = 0
    data0 = [0, 2433, 2680, 2927, 3173, 3420, 3667, 3914, 4161, 4408, 4653, 4901, 5147, 5395, 5642, 5889, 6136, 6383, 6629, 6875, 7123, 7369, 7617, 7863, 8111, 8356, 8604, 8850, 9098, 9344, 9591, 9837, 10084, 10333, 10579, 10827, 11073, 11321, 11567, 11813, 12060, 12307, 12554, 12801, 13048, 13295, 13541, 13788, 14035, 14282, 14528, 14776, 15021, 15269, 15515, 15763, 16010, 16257, 16504, 16749, 16997, 17243, 17491, 17737, 17985, 18231, 18479, 18724, 18972, 19219, 19466]
    hit0 = 1
    data1 = [0, 1651, 1820, 1987, 2154, 2321, 2489, 2656, 2824, 2991, 3160, 3328, 3495, 3663, 3830, 3997, 4165, 4333, 4500, 4668, 4834, 5002, 5169, 5339, 5507, 5673, 5841, 6008, 6176, 6343, 6511, 6679, 6846, 7014, 7181, 7348, 7516, 7685, 7853, 8020, 8186, 8354, 8522, 8689, 8858, 9024, 9192, 9359, 9527, 9696, 9862, 10031, 10198, 10366, 10533, 10700, 10867, 11035, 11204, 11371, 11537, 11705, 11874, 12041, 12210, 12377, 12544, 12711, 12879, 13046, 13213]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能21(主动技能):
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'

    名称 = "暗影鞭"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 3
    等级精通 = 60
    CD = 8
    MP = [10, 450]
    无色消耗 = 0
    data0 = [0, 927, 1075, 1222, 1371, 1519, 1666, 1815, 1963, 2109, 2258, 2406, 2553, 2702, 2850, 2997, 3146, 3293, 3441, 3590, 3736, 3884, 4034, 4181, 4329, 4478, 4625, 4773, 4921, 5068, 5216, 5364, 5512, 5660, 5808, 5956, 6104, 6252, 6400, 6546, 6695, 6843, 6990, 7139, 7287, 7434, 7583, 7731, 7877, 8026, 8173, 8321, 8470, 8617, 8766, 8915, 9062, 9210, 9359, 9505, 9653, 9801, 9949, 10097, 10245, 10393, 10541, 10689, 10836, 10984, 11132]
    hit0 = 1
    data1 = [0, 2164, 2509, 2853, 3200, 3545, 3891, 4234, 4580, 4925, 5271, 5614, 5960, 6305, 6651, 6996, 7339, 7685, 8031, 8377, 8720, 9066, 9411, 9757, 10101, 10446, 10791, 11137, 11481, 11826, 12171, 12518, 12863, 13208, 13552, 13898, 14242, 14588, 14932, 15278, 15622, 15968, 16313, 16658, 17002, 17349, 17694, 18040, 18384, 18729, 19074, 19420, 19764, 20109, 20454, 20799, 21144, 21488, 21835, 22180, 22526, 22869, 23215, 23560, 23906, 24249, 24595, 24940, 25286, 25630, 25975]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能22(主动技能):
    类型 = '物理'

    名称 = "瞬影斩"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 5
    MP = [50, 880]
    无色消耗 = 0
    data0 = [0, 1784, 1966, 2146, 2328, 2510, 2689, 2870, 3053, 3234, 3414, 3595, 3777, 3957, 4139, 4320, 4501, 4682, 4863, 5044, 5226, 5406, 5587, 5770, 5950, 6132, 6312, 6492, 6675, 6856, 7036, 7218, 7399, 7580, 7761, 7943, 8123, 8304, 8485, 8667, 8849, 9028, 9209, 9392, 9572, 9753, 9934, 10115, 10296, 10478, 10660, 10839, 11021, 11202, 11382, 11565, 11745, 11926, 12108, 12289, 12470, 12650, 12832, 13013, 13195, 13374, 13556, 13738, 13918, 14099, 14281]
    hit0 = 2
    TP成长 = 0.1
    TP上限 = 7


class 技能23(主动技能):
    类型 = '物理'

    名称 = "灭魂封魔斩"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 30
    MP = [20, 500]
    无色消耗 = 1
    data0 = [0, 16222, 17868, 19514, 21160, 22806, 24451, 26098, 27743, 29390, 31035, 32682, 34326, 35972, 37618, 39264, 40910, 42557, 44201, 45848, 47493, 49140, 50786, 52432, 54077, 55722, 57368, 59015, 60660, 62307, 63950, 65597, 67243, 68889, 70535, 72181, 73826, 75473, 77117, 78764, 80409, 82056, 83701, 85347, 86993, 88639, 90285, 91932, 93576, 95223, 96868, 98515, 100161, 101805, 103451, 105097, 106743, 108390, 110035, 111681, 113326, 114973, 116619, 118265, 119911, 121554, 123200, 124847, 126492, 128139, 129784]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7

    # def 等效百分比(self, **argv):
    #     char = argv.get("char", {})
    #     from core.basic.equipment import get_global_data
    #     attack_type = get_global_data("attack_type", char.equVersion)
    #     倍率 = 1.24
    #     if '领主敌人' in attack_type:
    #         倍率 = 1.97
    #     if '精英敌人' in attack_type:
    #         倍率 = 1.78
    #     return super().等效百分比(**argv) * 倍率


class 技能24(主动技能):
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'

    名称 = "冥魂珠"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 10
    MP = [20, 350]
    无色消耗 = 0
    data0 = [0, 399, 440, 481, 520, 561, 603, 643, 683, 724, 763, 806, 845, 885, 926, 967, 1006, 1048, 1089, 1129, 1169, 1210, 1251, 1292, 1332, 1372, 1413, 1455, 1494, 1535, 1574, 1614, 1655, 1696, 1737, 1777, 1817, 1858, 1900, 1939, 1980, 2021, 2061, 2102, 2143, 2183, 2224, 2264, 2304, 2346, 2387, 2425, 2466, 2507, 2548, 2588, 2629, 2669, 2709, 2751, 2791, 2832, 2872, 2912, 2953, 2995, 3034, 3075, 3116, 3156, 3197]
    hit0 = 13
    data1 = [0, 909, 1001, 1094, 1186, 1278, 1369, 1463, 1555, 1646, 1738, 1832, 1923, 2017, 2107, 2200, 2292, 2386, 2475, 2568, 2660, 2753, 2844, 2937, 3029, 3122, 3214, 3306, 3398, 3491, 3583, 3675, 3767, 3860, 3952, 4045, 4136, 4229, 4321, 4414, 4505, 4598, 4690, 4783, 4875, 4966, 5058, 5151, 5243, 5335, 5427, 5520, 5612, 5705, 5796, 5889, 5981, 6074, 6165, 6258, 6351, 6443, 6536, 6627, 6720, 6812, 6905, 6996, 7089, 7181, 7274]
    hit1 = 1
    TP成长 = 0
    TP上限 = 7

    def 等效百分比(self, **argv):
        self.hit0 = 13 + 3 * self.TP等级
        return super().等效百分比(**argv)


class 技能25(主动技能):
    类型 = '物理'

    名称 = "暗影升龙击"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 10
    MP = [15, 449]
    无色消耗 = 0
    data0 = [0, 1099, 1211, 1322, 1435, 1545, 1656, 1768, 1880, 1992, 2103, 2215, 2326, 2439, 2550, 2660, 2773, 2884, 2996, 3108, 3219, 3330, 3443, 3553, 3665, 3777, 3888, 4000, 4112, 4224, 4333, 4446, 4558, 4669, 4782, 4892, 5004, 5116, 5228, 5338, 5450, 5562, 5673, 5786, 5896, 6008, 6121, 6231, 6343, 6454, 6566, 6677, 6790, 6901, 7011, 7124, 7235, 7347, 7459, 7570, 7681, 7794, 7906, 8016, 8128, 8239, 8351, 8463, 8574, 8686, 8797]
    hit0 = 1
    data1 = [0, 1654, 1822, 1990, 2157, 2325, 2493, 2660, 2830, 2997, 3164, 3332, 3499, 3669, 3836, 4003, 4172, 4340, 4508, 4675, 4842, 5010, 5179, 5346, 5515, 5682, 5849, 6018, 6185, 6353, 6521, 6690, 6857, 7025, 7192, 7359, 7529, 7696, 7863, 8032, 8199, 8369, 8535, 8702, 8871, 9038, 9207, 9375, 9542, 9709, 9878, 10046, 10214, 10381, 10549, 10718, 10886, 11052, 11220, 11388, 11556, 11724, 11892, 12059, 12229, 12395, 12564, 12732, 12900, 13068, 13236]
    hit1 = 1
    data2 = [0, 1186, 1304, 1424, 1545, 1665, 1786, 1906, 2027, 2146, 2266, 2388, 2507, 2628, 2747, 2868, 2987, 3108, 3229, 3348, 3469, 3589, 3708, 3830, 3950, 4071, 4190, 4310, 4430, 4551, 4671, 4791, 4912, 5031, 5152, 5273, 5393, 5513, 5633, 5754, 5872, 5993, 6114, 6234, 6354, 6474, 6595, 6716, 6835, 6956, 7076, 7196, 7315, 7436, 7557, 7676, 7797, 7917, 8037, 8158, 8278, 8399, 8518, 8639, 8759, 8880, 9000, 9120, 9240, 9360, 9481]
    hit2 = 1
    data3 = [0, 792, 874, 953, 1033, 1115, 1194, 1275, 1356, 1437, 1516, 1597, 1678, 1758, 1838, 1920, 2000, 2080, 2159, 2240, 2321, 2401, 2483, 2563, 2644, 2722, 2804, 2884, 2964, 3046, 3126, 3207, 3286, 3367, 3447, 3528, 3609, 3690, 3769, 3851, 3930, 4010, 4091, 4172, 4253, 4332, 4414, 4493, 4574, 4655, 4736, 4815, 4895, 4977, 5056, 5137, 5218, 5298, 5378, 5459, 5540, 5620, 5700, 5780, 5861, 5941, 6022, 6102, 6182, 6263, 6343]
    hit3 = 1


class 技能26(主动技能):
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'

    名称 = "冥魂之陨"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 20
    MP = [40, 886]
    无色消耗 = 1
    data0 = [0, 368, 407, 444, 481, 519, 557, 593, 632, 668, 707, 744, 782, 819, 855, 895, 930, 969, 1006, 1045, 1080, 1120, 1156, 1195, 1231, 1269, 1307, 1344, 1382, 1418, 1457, 1493, 1531, 1568, 1606, 1643, 1681, 1719, 1757, 1794, 1831, 1869, 1907, 1943, 1981, 2019, 2056, 2093, 2130, 2169, 2206, 2244, 2281, 2319, 2357, 2394, 2431, 2470, 2507, 2542, 2581, 2618, 2657, 2693, 2732, 2769, 2806, 2844, 2881, 2919, 2957]
    hit0 = 24
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    def 装备护石(self, char):
        self.power0 = 1.24
        self.CDR *= 0.9


class 技能27(主动技能):
    类型 = '物理'

    名称 = "破魂之刃"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 20
    MP = [15, 540]
    无色消耗 = 1
    data0 = [0, 1513, 1666, 1820, 1973, 2127, 2281, 2434, 2587, 2741, 2895, 3049, 3203, 3356, 3509, 3662, 3816, 3971, 4124, 4278, 4432, 4585, 4739, 4893, 5046, 5200, 5353, 5506, 5659, 5814, 5967, 6120, 6275, 6428, 6581, 6737, 6890, 7043, 7197, 7350, 7503, 7659, 7812, 7965, 8118, 8272, 8425, 8579, 8733, 8886, 9039, 9193, 9346, 9501, 9655, 9808, 9961, 10114, 10268, 10421, 10575, 10730, 10883, 11036, 11191, 11344, 11498, 11652, 11805, 11959, 12112]
    hit0 = 1
    data1 = [0, 7651, 8428, 9204, 9981, 10758, 11533, 12311, 13086, 13862, 14639, 15415, 16191, 16969, 17744, 18522, 19297, 20072, 20850, 21626, 22402, 23179, 23954, 24732, 25508, 26284, 27061, 27837, 28613, 29390, 30165, 30943, 31719, 32494, 33272, 34046, 34824, 35600, 36376, 37152, 37929, 38705, 39482, 40258, 41034, 41810, 42587, 43363, 44140, 44915, 45693, 46469, 47246, 48021, 48797, 49574, 50351, 51126, 51903, 52680, 53457, 54232, 55008, 55784, 56562, 57337, 58114, 58890, 59668, 60444, 61221]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5


class 技能28(主动技能):
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'

    名称 = "凝魂波动阵"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 20
    MP = [45, 1000]
    无色消耗 = 1
    data0 = [0, 883, 972, 1064, 1152, 1243, 1332, 1422, 1511, 1601, 1690, 1780, 1869, 1961, 2049, 2139, 2228, 2319, 2407, 2498, 2588, 2677, 2768, 2857, 2946, 3035, 3126, 3215, 3305, 3394, 3486, 3574, 3663, 3753, 3842, 3933, 4023, 4111, 4203, 4292, 4380, 4470, 4560, 4651, 4740, 4829, 4920, 5010, 5099, 5189, 5277, 5367, 5458, 5548, 5637, 5727, 5817, 5906, 5995, 6085, 6174, 6265, 6354, 6444, 6533, 6625, 6713, 6802, 6892, 6983, 7071]
    hit0 = 1
    data1 = [0, 883, 972, 1064, 1152, 1243, 1332, 1422, 1511, 1601, 1690, 1780, 1869, 1961, 2049, 2139, 2228, 2319, 2407, 2498, 2588, 2677, 2768, 2857, 2946, 3035, 3126, 3215, 3305, 3394, 3486, 3574, 3663, 3753, 3842, 3933, 4023, 4111, 4203, 4292, 4380, 4470, 4560, 4651, 4740, 4829, 4920, 5010, 5099, 5189, 5277, 5367, 5458, 5548, 5637, 5727, 5817, 5906, 5995, 6085, 6174, 6265, 6354, 6444, 6533, 6625, 6713, 6802, 6892, 6983, 7071]
    hit1 = 7
    data2 = [0, 1777, 1958, 2137, 2317, 2498, 2678, 2859, 3038, 3219, 3399, 3579, 3761, 3940, 4121, 4301, 4482, 4662, 4841, 5022, 5202, 5383, 5563, 5743, 5923, 6103, 6286, 6465, 6646, 6825, 7006, 7186, 7366, 7546, 7726, 7907, 8087, 8269, 8447, 8629, 8809, 8990, 9170, 9350, 9530, 9710, 9890, 10071, 10250, 10431, 10611, 10792, 10973, 11152, 11334, 11513, 11695, 11874, 12054, 12234, 12414, 12595, 12775, 12955, 13135, 13317, 13496, 13678, 13857, 14038, 14218]
    hit2 = 1
    data3 = [0, 348, 384, 418, 456, 489, 526, 560, 597, 631, 666, 702, 738, 773, 808, 844, 880, 916, 949, 986, 1021, 1057, 1092, 1126, 1163, 1198, 1233, 1268, 1304, 1340, 1376, 1409, 1447, 1481, 1518, 1552, 1587, 1623, 1658, 1693, 1729, 1764, 1800, 1835, 1871, 1906, 1941, 1977, 2013, 2047, 2083, 2118, 2155, 2189, 2224, 2260, 2296, 2331, 2365, 2401, 2437, 2473, 2506, 2543, 2579, 2615, 2650, 2684, 2721, 2756, 2792]
    hit3 = 1
    TP成长 = 0.1
    TP上限 = 5


class 技能29(主动技能):
    类型 = '物理'

    名称 = "破魂斩"
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 15
    MP = [25, 600]
    无色消耗 = 1
    data0 = [0, 7267, 8005, 8744, 9481, 10219, 10955, 11693, 12431, 13168, 13905, 14643, 15380, 16118, 16856, 17591, 18330, 19068, 19806, 20542, 21279, 22017, 22756, 23492, 24229, 24967, 25704, 26442, 27179, 27916, 28653, 29392, 30129, 30867, 31603, 32342, 33079, 33816, 34553, 35292, 36028, 36767, 37502, 38241, 38978, 39717, 40453, 41190, 41928, 42665, 43404, 44139, 44878, 45615, 46353, 47089, 47827, 48564, 49303, 50040, 50778, 51515, 52252, 52990, 53728, 54464, 55202, 55939, 56677, 57414, 58150]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 5


class 技能30(主动技能):
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'

    名称 = "冥炎破空斩"
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 45
    MP = [100, 1260]
    无色消耗 = 2
    data0 = [0, 1864, 2051, 2243, 2432, 2619, 2809, 2999, 3187, 3376, 3567, 3754, 3944, 4134, 4322, 4511, 4700, 4889, 5077, 5269, 5456, 5645, 5837, 6024, 6214, 6401, 6590, 6780, 6969, 7158, 7347, 7537, 7726, 7915, 8102, 8293, 8482, 8670, 8862, 9050, 9240, 9429, 9617, 9805, 9995, 10185, 10373, 10563, 10752, 10941, 11129, 11320, 11509, 11697, 11886, 12074, 12265, 12453, 12643, 12833, 13020, 13211, 13398, 13586, 13777, 13966, 14154, 14344, 14534, 14722, 14912]
    hit0 = 2
    data1 = [0, 2801, 3085, 3370, 3654, 3939, 4222, 4505, 4789, 5075, 5358, 5644, 5928, 6211, 6498, 6780, 7065, 7348, 7632, 7916, 8202, 8485, 8771, 9053, 9337, 9623, 9907, 10192, 10477, 10759, 11043, 11327, 11611, 11896, 12180, 12465, 12749, 13034, 13314, 13602, 13885, 14169, 14454, 14737, 15023, 15307, 15590, 15876, 16160, 16443, 16730, 17011, 17297, 17579, 17864, 18148, 18433, 18717, 19003, 19287, 19569, 19855, 20138, 20423, 20707, 20991, 21275, 21561, 21842, 22129, 22412]
    hit1 = 2
    data2 = [0, 5602, 6170, 6739, 7309, 7876, 8445, 9015, 9581, 10149, 10719, 11289, 11856, 12424, 12992, 13559, 14128, 14698, 15267, 15833, 16403, 16972, 17541, 18109, 18677, 19246, 19812, 20382, 20951, 21520, 22087, 22656, 23224, 23791, 24360, 24931, 25500, 26066, 26635, 27204, 27771, 28341, 28910, 29477, 30044, 30613, 31184, 31752, 32318, 32887, 33457, 34023, 34594, 35163, 35732, 36297, 36867, 37436, 38006, 38571, 39140, 39710, 40276, 40845, 41415, 41986, 42550, 43120, 43689, 44257, 44824]
    hit2 = 2
    data3 = [0, 188, 206, 224, 244, 264, 282, 300, 320, 338, 359, 377, 396, 413, 434, 454, 471, 492, 511, 527, 548, 568, 585, 606, 625, 643, 662, 682, 699, 720, 740, 758, 775, 795, 815, 833, 854, 871, 889, 910, 929, 947, 967, 985, 1006, 1025, 1042, 1062, 1082, 1101, 1119, 1140, 1156, 1177, 1198, 1214, 1233, 1252, 1272, 1290, 1309, 1327, 1348, 1366, 1385, 1404, 1423, 1443, 1462, 1480, 1500]
    hit3 = 8
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 = 4
        self.hit1 = 4
        self.power0 = 0.5
        self.power1 = 0.5
        self.power2 = 1.34
        self.power3 = 3.99


class 技能31(主动技能):
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'

    名称 = "禁魂斩"
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 20
    MP = [20, 800]
    无色消耗 = 1
    data0 = [0, 9234, 10173, 11111, 12047, 12984, 13920, 14859, 15796, 16732, 17669, 18606, 19544, 20481, 21417, 22355, 23291, 24230, 25166, 26103, 27041, 27976, 28914, 29851, 30788, 31725, 32661, 33599, 34537, 35473, 36410, 37346, 38285, 39222, 40158, 41095, 42032, 42971, 43907, 44844, 45781, 46718, 47656, 48593, 49528, 50467, 51402, 52340, 53277, 54214, 55151, 56087, 57025, 57963, 58899, 59836, 60772, 61711, 62649, 63584, 64522, 65458, 66397, 67333, 68270, 69207, 70144, 71082, 72019, 72954, 73893]
    hit0 = 1
    TP成长 = 0
    TP上限 = 5

    def TP加成(self):
        if self.TP等级 <= 1:
            return 1
        else:
            return 1 + self.TP成长 * (self.TP等级-1)


class 技能32(主动技能):
    名称 = "魔狱裂魂斩"
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 40
    MP = [40, 1000]
    无色消耗 = 2
    data0 = [0, 4385, 4830, 5276, 5720, 6166, 6610, 7053, 7500, 7944, 8389, 8833, 9278, 9724, 10171, 10616, 11061, 11505, 11949, 12394, 12841, 13284, 13729, 14174, 14618, 15065, 15510, 15953, 16397, 16843, 17289, 17734, 18179, 18625, 19069, 19512, 19958, 20405, 20851, 21294, 21739, 22182, 22627, 23074, 23518, 23961, 24410, 24854, 25299, 25742, 26188, 26634, 27077, 27521, 27968, 28413, 28857, 29302, 29750, 30191, 30635, 31084, 31528, 31974, 32419, 32863, 33307, 33753, 34198, 34642, 35085]
    hit0 = 1
    data1 = [0, 2689, 2961, 3234, 3507, 3780, 4051, 4326, 4598, 4871, 5144, 5417, 5691, 5961, 6235, 6508, 6779, 7053, 7327, 7595, 7870, 8143, 8417, 8689, 8961, 9235, 9506, 9780, 10052, 10324, 10600, 10873, 11145, 11417, 11690, 11964, 12235, 12508, 12782, 13055, 13326, 13599, 13873, 14146, 14418, 14691, 14964, 15236, 15510, 15782, 16053, 16328, 16599, 16872, 17144, 17418, 17691, 17963, 18236, 18510, 18781, 19054, 19327, 19599, 19872, 20146, 20421, 20693, 20964, 21238, 21510]
    hit1 = 6
    TP成长 = 0.1
    TP上限 = 5


class 技能33(主动技能):
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'

    名称 = "黑暗明王阵"
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 45
    MP = [70, 1120]
    无色消耗 = 2
    data0 = [0, 2873, 3165, 3456, 3748, 4032, 4332, 4618, 4908, 5198, 5495, 5785, 6077, 6369, 6656, 6951, 7241, 7536, 7822, 8119, 8406, 8699, 8994, 9285, 9577, 9859, 10159, 10446, 10737, 11028, 11319, 11612, 11904, 12196, 12482, 12782, 13067, 13361, 13648, 13946, 14238, 14523, 14821, 15106, 15397, 15690, 15982, 16270, 16567, 16853, 17148, 17440, 17730, 18022, 18316, 18601, 18895, 19186, 19481, 19770, 20062, 20355, 20639, 20932, 21223, 21518, 21809, 22099, 22392, 22682, 22974]
    hit0 = 4
    data1 = [0, 6665, 7344, 8012, 8686, 9392, 10034, 10738, 11419, 12088, 12754, 13427, 14114, 14775, 15468, 16136, 16816, 17484, 18178, 18841, 19526, 20203, 20862, 21542, 22216, 22917, 23564, 24265, 24941, 25617, 26288, 26963, 27638, 28312, 29005, 29654, 30350, 31024, 31717, 32366, 33042, 33737, 34391, 35094, 35761, 36441, 37105, 37798, 38456, 39146, 39823, 40491, 41170, 41841, 42515, 43213, 43882, 44557, 45222, 45901, 46576, 47246, 47952, 48620, 49296, 49968, 50645, 51319, 51986, 52670, 53351]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5


class 技能34(主动技能):
    名称 = "魔影剑舞"
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 45
    MP = [50, 1080]
    无色消耗 = 2
    data0 = [0, 1056, 1164, 1265, 1374, 1481, 1591, 1697, 1804, 1911, 2018, 2122, 2230, 2339, 2443, 2550, 2658, 2765, 2874, 2981, 3087, 3193, 3301, 3407, 3514, 3624, 3729, 3835, 3943, 4048, 4156, 4263, 4370, 4477, 4581, 4693, 4798, 4903, 5013, 5121, 5224, 5333, 5440, 5545, 5655, 5762, 5868, 5975, 6081, 6189, 6293, 6398, 6507, 6614, 6718, 6824, 6933, 7038, 7146, 7255, 7361, 7466, 7572, 7678, 7786, 7893, 7999, 8107, 8213, 8318, 8424]
    hit0 = 13
    data1 = [0, 2530, 2783, 3048, 3301, 3561, 3812, 4070, 4332, 4584, 4832, 5102, 5356, 5610, 5873, 6125, 6379, 6630, 6893, 7149, 7404, 7674, 7920, 8173, 8434, 8694, 8943, 9203, 9459, 9722, 9975, 10227, 10490, 10742, 11004, 11253, 11512, 11774, 12025, 12279, 12545, 12799, 13055, 13315, 13568, 13826, 14078, 14340, 14594, 14845, 15113, 15382, 15634, 15896, 16155, 16411, 16670, 16930, 17182, 17440, 17703, 17953, 18213, 18473, 18728, 18988, 19247, 19500, 19762, 20021, 20276]
    hit1 = 3
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.power0 = 0.5
        self.hit1 = 1
        self.power1 = 1*0.19+1*1.3+6*0.91+1*1.63


class 技能35(被动技能):
    名称 = '时间停滞'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40
    关联技能 = ['所有']
    连击倍率 = 2.0

    def 加成倍率(self, 武器类型):
        if self.等级 <= 15:
            return round(1.045 + 0.01 * self.等级, 5)
        else:
            return round(0.97 + 0.015 * self.等级, 5)


class 技能36(主动技能):
    名称 = "幽魂剑"
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40
    CD = 45
    MP = [400, 3360]
    无色消耗 = 2
    data0 = [0, 299, 348, 395, 443, 491, 540, 586, 635, 682, 729, 778, 826, 873, 921, 968, 1018, 1066, 1113, 1161, 1211, 1257, 1303, 1352, 1399, 1447, 1495, 1543, 1592, 1639, 1688, 1735, 1781, 1831, 1880, 1927, 1973, 2022, 2070, 2120, 2165, 2212, 2263, 2308, 2358, 2406, 2454, 2502, 2550, 2594, 2645]
    hit0 = 33
    data1 = [0, 9906, 11485, 13064, 14644, 16222, 17802, 19383, 20961, 22539, 24118, 25698, 27276, 28857, 30436, 32014, 33596, 35174, 36755, 38333, 39911, 41493, 43071, 44650, 46227, 47809, 49387, 50966, 52548, 54125, 55704, 57285, 58863, 60441, 62022, 63600, 65179, 66760, 68339, 69919, 71498, 73077, 74655, 76237, 77815, 79393, 80974, 82552, 84131, 85712, 87290]
    hit1 = 1

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 = 6
        self.power1 = 2.27
        self.CDR *= 0.89


class 技能37(主动技能):
    名称 = "暗炎冥魂波"
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40
    CD = 30
    MP = [400, 1120]
    无色消耗 = 1
    data0 = [0, 4432, 5139, 5847, 6554, 7261, 7967, 8675, 9383, 10086, 10794, 11501, 12208, 12914, 13622, 14329, 15035, 15743, 16448, 17157, 17864, 18570, 19277, 19983, 20689, 21396, 22103, 22811, 23517, 24224, 24929, 25638, 26344, 27051, 27759, 28464, 29172, 29878, 30584, 31292, 31999, 32705, 33412, 34120, 34827, 35532, 36240, 36945, 37654, 38360, 39066]
    hit0 = 5
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.29
        self.CDR *= 0.9


class 技能38(主动技能):
    名称 = "斩龙破"
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 45
    MP = [580, 4500]
    无色消耗 = 3
    data0 = [0, 2540, 2798, 3058, 3313, 3571, 3829, 4086, 4346, 4602, 4861, 5118, 5376, 5635, 5894, 6149, 6406, 6664, 6921, 7181, 7437, 7696, 7954, 8211, 8470, 8729, 8985, 9242, 9499, 9759, 10017, 10272, 10531, 10789, 11048, 11305, 11563, 11821, 12078, 12336, 12594, 12852, 13108, 13366, 13623, 13884, 14141, 14398, 14655, 14915, 15172]
    hit0 = 1
    data1 = [0, 2540, 2798, 3058, 3313, 3571, 3829, 4086, 4346, 4602, 4861, 5118, 5376, 5635, 5894, 6149, 6406, 6664, 6921, 7181, 7437, 7696, 7954, 8211, 8470, 8729, 8985, 9242, 9499, 9759, 10017, 10272, 10531, 10789, 11048, 11305, 11563, 11821, 12078, 12336, 12594, 12852, 13108, 13366, 13623, 13884, 14141, 14398, 14655, 14915, 15172]
    hit1 = 1
    data2 = [0, 23151, 25499, 27847, 30198, 32545, 34894, 37243, 39590, 41939, 44288, 46635, 48986, 51333, 53683, 56032, 58380, 60728, 63078, 65425, 67775, 70123, 72471, 74821, 77170, 79517, 81868, 84216, 86563, 88914, 91261, 93610, 95960, 98308, 100657, 103006, 105353, 107703, 110051, 112400, 114749, 117098, 119446, 121796, 124143, 126491, 128840, 131188, 133536, 135886, 138234]
    hit2 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 = 0
        self.hit1 = 0
        self.hit2 = 6
        self.power2 = 0.29
        self.CDR *= 0.9


class 技能39(被动技能):
    名称 = '次元融合'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40
    关联技能 = ['无']
    自定义描述 = 1

    def 技能描述(self, 武器类型):
        return '力量/智力+' + str(int(self.力智倍率() * 100 - 100)) + '%'

    def 力智倍率(self):
        return round(1 + 0.02 * self.等级, 5)


class 技能40(被动技能):
    名称 = '自我觉醒'
    所在等级 = 75
    等级上限 = 1
    基础等级 = 1
    关联技能 = ['所有']

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.01 + self.等级 * 0.1, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.01 + self.等级 * 0.1, 5)


class 技能41(主动技能):
    武器惩罚类型 = '魔法固伤'

    名称 = "邪影升龙斩"
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 50
    MP = [800, 6000]
    无色消耗 = 5
    data0 = [0, 63239, 69655, 76069, 82487, 88903, 95319, 101734, 108151, 114565, 120980, 127397, 133811, 140229, 146643, 153058, 159473, 165890, 172306, 178723, 185137, 191554, 197969, 204384, 210799, 217215, 223632, 230048, 236462, 242880, 249295, 255710, 262125, 268544, 274958, 281374, 287787, 294202, 300619, 307033, 313450, 319868, 326283, 332698, 339114, 345528, 351946, 358360, 364777, 371192, 377608]
    hit0 = 1

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.32


class 技能42(主动技能):
    名称 = "超时空碎裂"
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 180
    MP = [2500, 5000]
    无色消耗 = 10
    data0 = [0, 3562, 4387, 5215, 6040, 6866, 7692, 8518, 9342, 10172, 10997, 11823, 12649, 13473, 14299, 15126, 15952, 16776, 17602, 18426, 19254, 20083, 20906, 21732, 22560, 23386, 24210, 25036, 25864, 26688, 27514, 28339, 29164, 29993, 30817, 31644, 32473, 33298, 34122, 34947, 35774, 36598, 37426, 38250, 39080, 39904, 40730, 41555, 42382, 43208, 44032]
    hit0 = 19
    data1 = [0, 67675, 83365, 99060, 114752, 130446, 146138, 161831, 177522, 193215, 208909, 224606, 240294, 255988, 271684, 287373, 303066, 318759, 334449, 350143, 365838, 381529, 397223, 412917, 428610, 444303, 459994, 475690, 491380, 507074, 522765, 538457, 554150, 569844, 585539, 601229, 616924, 632618, 648308, 664000, 679692, 695385, 711080, 726772, 742464, 758158, 773850, 789545, 805236, 820931, 836621]
    hit1 = 1


class 技能43(主动技能):
    名称 = "暗黑溯回斩"
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 60
    MP = [960, 7200]
    无色消耗 = 7
    data0 = [0, 7115, 7837, 8557, 9279, 10002, 10725, 11445, 12166, 12889, 13611, 14332, 15054, 15775, 16498, 17219, 17942, 18664, 19385, 20106, 20828, 21549, 22273, 22993, 23714, 24436, 25161, 25882, 26602, 27323, 28045, 28768, 29489, 30210, 30932, 31655, 32377, 33099, 33820, 34542, 35264, 35985, 36707, 37428, 38149, 38873, 39594, 40317, 41037, 41760, 42481]
    hit0 = 8
    data1 = [0, 56916, 62690, 68465, 74239, 80012, 85786, 91562, 97335, 103109, 108882, 114656, 120431, 126206, 131980, 137754, 143528, 149303, 155077, 160852, 166626, 172399, 178174, 183947, 189720, 195495, 201270, 207045, 212818, 218593, 224367, 230141, 235917, 241689, 247462, 253237, 259011, 264786, 270561, 276333, 282108, 287881, 293657, 299431, 305206, 310978, 316752, 322526, 328301, 334075, 339848]
    hit1 = 1


class 技能44(被动技能):
    名称 = '时空主宰'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40
    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能45(主动技能):
    名称 = "时之止境：幻灭"
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 290
    MP = [4027, 8055]
    无色消耗 = 15
    data0 = [0, 429562, 529171, 628780, 728388, 827998, 927605, 1027215, 1126824, 1226433, 1326040, 1425649, 1525258, 1624867, 1724474, 1824084, 1923693, 2023301, 2122911, 2222519, 2322129, 2421737, 2521346, 2620954, 2720563, 2820172, 2919781, 3019388, 3118999, 3218608, 3318216, 3417824, 3517432, 3617041, 3716650, 3816259, 3915867, 4015475, 4115084, 4214695, 4314302, 4413911, 4513520, 4613127, 4712736, 4812346, 4911954, 5011566, 5111170, 5210779, 5310388]
    hit0 = 1


class classChange(Character):
    def __init__(self, equVersion=""):
        self.实际名称 = 'dark_knight'
        self.名称 = '极诣·黑暗武士'
        self.角色 = '鬼剑士(男)'
        self.角色类型 = '输出'
        self.职业 = '黑暗武士'
        self.武器选项 = ['光剑', '太刀', '巨剑', '短剑', '钝器']
        self.输出类型选项 = ['物理百分比', '魔法百分比']
        self.防具精通属性 = ['力量', '智力']
        self.类型 = '魔法百分比'  # 默认
        self.武器类型 = '短剑'  # 默认
        self.防具类型 = '轻甲'  # 默认
        self.排列 = ['']*30

        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 1.54

        super().__init__(equVersion)

    def set_skill_info(self, info, rune_except=[], clothes_pants=[], rune_start_lv=20):
        return super().set_skill_info(info, rune_start_lv=15)

    def hotkey_set(self, setinfo):
        self.hotkey = setinfo[:6]
        self.排列 = setinfo[6:]

    def 职业特殊设置(self):
        排列倍率 = [1, 1.3, 1.5, 1.8, 2]
        for index in range(min(30, len(self.排列))):
            name = self.排列[index]
            if index not in ['', None]:
                skill = self.get_skill_by_name(name)
                # 排列内技能 无法手搓
                skill.手搓 = False
                skill.手搓指令数 = 0
                # 每一阶段技能额外倍率加成
                skill.倍率 *= 排列倍率[int(index / 6)]

    def 装备基础(self):
        if self.类型 == '物理百分比':
            self.防具类型 = '轻甲'
            self.防具精通属性 = ['力量']
        if self.类型 == '魔法百分比':
            self.防具类型 = '布甲'
            self.防具精通属性 = ['智力']
        super().装备基础()

    def 职业特殊计算(self):
        # 下排使用时攒豆,施放非下排技能时,享受当前下排攒到的豆子倍率
        连击倍率 = self.get_skill_by_name('时间停滞').连击倍率
        for skill in self.技能栏:
            if skill.是否有伤害 == 1 and skill.名称 not in self.排列:
                # 先默认按照叠满算,后续考虑根据使用之前释放的下排技能加成技能
                skill.倍率 *= 连击倍率

    # def set_individuation(self, info):
    #     info['char_optiopns'] = [
    #         {
    #             "name": "护甲精通选择",
    #             "option": ["轻甲", "布甲", "重甲", "板甲"]
    #         }
    #     ]

    def 被动力智系数(self) -> float:
        return self.get_skill_by_name('次元融合').力智倍率() - 1

    def 基础面板力量(self) -> float:
        return max(super().基础面板力量(), super().基础面板智力())

    def 基础面板智力(self) -> float:
        return self.基础面板力量()

    def 伤害计算(self):
        data = super().伤害计算()
        data = self.排列CD计算(data)
        return data

    def 排列CD计算(self, data):
        for i in range(0, 6):
            skills = []
            for j in range(0, 5):
                if j*6+i < len(self.排列) and self.排列[j*6+i] not in [None, '']:
                    skills.append(self.排列[j*6+i])
            if len(skills) > 0:
                total_cd = 0
                total_unsave = 0
                for skill in skills:
                    temp = data['skills'].get(skill, None)
                    if temp != None:
                        total_cd += temp['cd'] * (temp['cd_unsave'])
                        total_unsave += temp['cd_unsave']
                # 排列内大于1个开始计算平均CD
                if total_unsave > 1:
                    avg_cd = round(total_cd / (total_unsave) * 1.2, 2)
                    for skill in skills:
                        temp = data['skills'].get(skill, None)
                        if temp != None:
                            data['skills'][skill]['cd'] = avg_cd
        for index in range(0, len(data['CDR'])):
            item = data['CDR'][index]
            skill = item[0]
            data['CDR'][index] = (skill, round(
                1-data['skills'][skill].get('cd', 0)/data['skills'][skill].get('cd_o', 0), 4), data['skills'][skill].get('cd', 0))
        return data

    def 伤害指数计算(self):
        if self.武器类型 in ['光剑', '钝器', '巨剑']:
            self.类型 = '物理百分比'
        else:
            self.类型 = '魔法百分比'
        temp = self.类型
        super().伤害指数计算()
        self.类型 = '物理百分比'
        self.伤害指数_物理 = self.伤害指数
        super().伤害指数计算()
        self.类型 = '魔法百分比'
        super().伤害指数计算()
        self.伤害指数_魔法 = self.伤害指数
        self.类型 = temp

    def 伤害计算技能特殊处理(self, skill: 技能):
        if skill.类型 == "物理":
            self.伤害指数 = self.伤害指数_物理
        if skill.类型 == "魔法":
            self.伤害指数 = self.伤害指数_魔法
        pass

    def set_skill_info(self, info, rune_except=[], clothes_pants=[], rune_start_lv=20) -> None:
        super().set_skill_info(info, clothes_pants=[
            '暗·光剑精通', '暗·短剑精通', '暗·太刀精通', '暗·钝器精通', '暗·巨剑精通',])
        info['rune'].append("幽魂剑")

    def getskillinfos(self):
        info = super().getskillinfos()
        skill = self.get_skill_by_name("次元融合")
        for i in info:
            i["skills_passive"].append({
                "name": skill.名称,
                "need_level": skill.所在等级,
                "lv": skill.等级,
                "data": round((skill.力智倍率()-1)*100, 0),
                "type": "倍率",
                "remark": "力智"
            })
        return info

    def 设置觉醒技能(self):
        self.觉醒技能 = []
        for i in self.技能栏:
            if i.是否有伤害 == 1 and i.所在等级 in [85,100]:
                self.觉醒技能.append(i.名称)